<?php

class Bootstrap {

    public static function run(Request $Peticion) {

        $controlador = $Peticion->GetControlador() . 'Controller';

        $rutacontrolador = ROOT . 'Controladores' . DS . $controlador . '.php';
        $metodo = $Peticion->GetMetodo();
        $args = $Peticion->GetArgs();

        if (is_readable($rutacontrolador)) {

            require_once $rutacontrolador;

            $ObjetoControlador = new $controlador;

//verifico que el metodo sea valido
            if (is_callable(array($controlador, $metodo))) {
                $metodo = $Peticion->GetMetodo();
            } else {
                $metodo = 'index';
            }

//verifico la existencia de argumentos

            if (isset($args)) {
                call_user_func_array(array($ObjetoControlador, $metodo), $args);
            } else {
                call_user_func(array($ObjetoControlador, $metodo));
            }
        } else { //is_readable
            throw new Exception('No Se Encontro ' . $rutacontrolador);
        }
    }

}

?>
